# -*- coding: utf-8 -*-
import mod.client.extraClientApi as clientApi
class Scheduler:
    def addUI(self, func, delay, repeat=-1):
        # type: (callable, int, int) -> int
        """
        在UI中调用，新增一个同步任务，会在之后执行。
        Args:
        - func (callable): 要执行的任务。不接收任何参数。若要携带参数，可以定义一下args
        - delay (int): 延迟执行的延时，单位游戏刻（1秒=20刻）
        - repeat (int): 反复执行的延时，单位游戏刻（1秒=20刻）。若不填则只执行一次
        Returns:
            taskId (int): 任务ID。可随时用scheduler.cancel(taskId)将此任务移除
        """
        return 0


    def add(self, func, delay, repeat=-1):
        # type: (callable, int, int) -> int
        """
        在非UI的地方调用，新增一个同步任务，会在之后执行。
        Args:
        - func (callable): 要执行的任务。不接收任何参数。若要携带参数，可以定义一下args
        - delay (int): 延迟执行的延时，单位游戏刻（1秒=20刻）
        - repeat (int): 反复执行的延时，单位游戏刻（1秒=20刻）。若不填则只执行一次
        Returns:
            taskId (int): 任务ID。可随时用scheduler.cancel(taskId)将此任务移除
        """
        return 0


    def addPushUI(self, func, delay, repeat=-1):
        # type: (callable, int, int) -> int
        """
        在UI中调用，在界面关闭时会自动取消。新增一个同步任务，会在之后执行。
        Args:
        - func (callable): 要执行的任务。不接收任何参数。若要携带参数，可以定义一下args
        - delay (int): 延迟执行的延时，单位游戏刻（1秒=20刻）
        - repeat (int): 反复执行的延时，单位游戏刻（1秒=20刻）。若不填则只执行一次
        Returns:
            taskId (int): 任务ID。可随时用scheduler.cancel(taskId)将此任务移除
        """
        return 0


    def cancel(self, taskId):
        # type: (int) -> None
        """
        删除一个同步任务
        Args:
            taskId (int): 添加任务时返回的taskId
        """
        pass

